package collection;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

public class NewForDemo {
    public static void main(String[] args) {
        String[] arr = {"one", "two", "three", "four", "five"};
        for (int i = 0; i < arr.length; i++) {
            String s = arr[i];
            System.out.println(s);
        }
        //新循环的循环次数取决于数字长度，每次循环会陆续将数组每个元素取出
        //并赋值给变量s然后进入循环体
        for (String s : arr) {
            System.out.println(s);
        }
        /*
            JDK1.5出现的另一个特性:泛型
            泛型也称为参数化类型，它允许我们在使用一个类时，为其内部定义的某个
            属性，或方法的参数，或返回值的类型来指定实际类型，使用起来更灵活
         */
        Collection<String> c = new ArrayList<>();
        c.add("一");
        c.add("二");
        c.add("三");
        c.add("四");
        c.add("五");

        for (String s : c) {
            System.out.println(s);
        }
        //迭代器也支持泛型，指定时与遍历的集合元素指定的泛型一致即可
        Iterator<String> it = c.iterator();
        while (it.hasNext()) {
            String s = it.next();//获取元素后无需再造型
            System.out.println(s);
        }
    }
}
